import java.util.*;

public class day4 {
/*
*
29道: BC23 时间转换
描述
给定秒数 seconds ，把秒转化成小时、分钟和秒。
数据范围： 0 < seconds < 100000000\0<seconds<100000000
输入描述：一行，包括一个整数，即给定的秒数。
输出描述：
一行，包含三个整数，依次为输入整数对应的小时数、分钟数和秒数（可能为零），中间用一个空格隔开。
示例1
输入：3661
输出：1 1 1
*/
    // 方式一:
    public static void main29_1(String[] args) {
    Scanner scanner = new Scanner(System.in);

    int seconds = scanner.nextInt();

    int h = seconds / 60 / 60;  // 小时
    int m = seconds / 60 % 60;  // 分钟
    int s = seconds % 60;       // 秒

    System.out.println(h + " " + m + " " + s);
    }
    // 方式二:
    public static void main29_2(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int seconds = scanner.nextInt();

        int h = seconds / 3600;             // 小时
        int m = (seconds - h * 3600) / 60 ; // 分钟
        int s = seconds - h * 3600 - m * 60  ; // 秒

        System.out.println(h+" "+m+" "+s);
    }




/*
30道: BC24 总成绩和平均分计算
描述
依次输入一个学生的3科成绩，在屏幕上输出该学生的总成绩以及平均成绩。
输入描述：
一行，3科成绩，成绩之间用一个空格隔开。
输出描述：
一行，总成绩和平均成绩（小数点后保留两位），用一个空格隔开。
示例1
输入：79.5 80.0 98.0
输出：257.50 85.83
*/

    public static void main30_1(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double[] genders = new double[3]; // 创建数组
        double sum = 0.0;
        for(int i = 0; i < genders.length;i++) {
            genders[i] = scanner.nextDouble();
            sum += genders[i];
        }

        System.out.printf("%.2f %.2f",sum,sum/3);
        /*
        注意在Java当中的 printf 对应的浮点数类型是 %f,没有%lf报错以及 整数类型只有 %d,没有%ld 报错*/
    }

    // 方式二:
    public static void main30_2(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double[] genders = new double[3]; // 创建数组
        double sum = 0.0;
        for(int i = 0; i < genders.length;i++) {
            genders[i] = scanner.nextDouble();
            sum += genders[i];
        }
        System.out.println(String.format("%.2f",sum)+" "+String.format("%.2f",sum/3));
        // String.format("格式的样式",需要格式字符串(如果传的是数值将自动转换为字符串),可变参数(可以不传,但不要传null)) 格式化字符串
        /*
        注意在Java当中的 printf 对应的浮点数类型是 %f,没有%lf报错以及 整数类型只有 %d,没有%ld 报错*/
    }

    /*
31道: BC30 KiKi和酸奶
描述
BoBo买了一箱酸奶，里面有n盒未打开的酸奶，KiKi喜欢喝酸奶，第一时间发现了酸奶。
KiKi每h分钟能喝光一盒酸奶，并且KiKi在喝光一盒酸奶之前不会喝另一个，那么经过m分钟后还有多少盒未打开的酸奶？
输入描述：
多组输入，每组输入仅一行，包括n，h和m（均为整数）。输入数据保证m <= n * h。
输出描述：
针对每组输入，输出也仅一行，剩下的未打开的酸奶盒数。
示例1
输入：8 5 16
输出：4
*/
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while(scanner.hasNextInt()) {
            int n = scanner.nextInt();
            int h = scanner.nextInt();
            int m = scanner.nextInt();

            int sum = 0;
            if(m % h > 0 ) { // kiki正在喝酸奶,没有喝光
                sum = m / h +1;
            }
            else {
                sum = m / h;  // kiki没有在喝酸奶
            }

            System.out.println(n-sum);
        }
    }


    /*
32道:BC31 发布信息
描述
你的手机丢了，在屏幕上输出信息告诉大家。
输入描述：
无
输出描述：
I lost my cellphone!
*/

    public static void main32_1(String[] args) {
        System.out.println("I lost my cellphone!");
    }

    /*
33道: BC32 输出学生信息
描述
学生信息管理系统是学校教学管理的重要工具，现有一名学生基本信息如下：姓名-Jack，年龄-18，性别-Man，请按照输出样例的格式输出该学生的信息。
输入描述：
输出描述：
输出分为三行，分别为标题行，分隔行，信息行。
第一行，标题行，每个标题之间间隔4个空格。
第二行，分隔行，一共21个减号"-"。
第三行，信息行，每列输出信息和标题首字母对齐。输出样例如下：
Name Age Gender
---------------------
Jack 18 man
*/
    public static void main33_1(String[] args) {
        System.out.println("Name    Age    Gender");
        System.out.println("---------------------");
        System.out.println("Jack    18     man");
    }




    /*
34道：BC33 计算平均成绩
输入描述：
一行，连续输入5个整数（范围0~100），用空格分隔。
输出描述：
一行，输出5个数的平均数（保留一位小数）。
示例1
输入：75 80 43 67 96
输出：72.2
*/
    public static void main34_1(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] arrs = new int[5];
        double sum = 0.0;

        for(int i = 0; i < arrs.length;i++) {
            arrs[i] = scanner.nextInt();
            sum += arrs[i];
        }

        // System.out.printf("%.1f",sum/5); // 注意在java当中浮点数的格式输入是 %.f,没有%.2f,整型的格式是%.d没有 %.ld;
        // 或者使用
        System.out.println(String.format("%.1f",sum/5));
        // 注意同理:java当中的:%f,%d 的格式
    }


    /*
35道:BC34 进制A+B
描述
输入一个十六进制数a，和一个八进制数b，输出a+b的十进制结果（范围-231~231-1）。
输入描述：
一行，一个十六进制数a，和一个八进制数b，中间间隔一个空格。
输出描述：
一行，a+b的十进制结果。
示例1
输入：0x12 05
输出：23
备注
十六进制Hexadecimal一般以0x开头，例如0xFF。八进制Octal，一般以0开头，例如07。
*/

    public static void main35(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine(); // 注意nextLine和next的不同,next不可以读取到空格,nexttLine()可以读取到空格
        String[] sl = str.split(" "); // 将字符串的内容根据" "进行一个分割。并将分组后字符串内容返回到字符串数组中去

        // 去除0x,o使用
        int a = Integer.parseInt(sl[0].substring(2,sl[0].length()),16);
        int b = Integer.parseInt(sl[1].substring(1,sl[1].length()),8);
        System.out.println(a+b);

        // Integer int类型的包装类,parseInt(输出的数值,输出的格式)
        // substring(表示获取到对应下标之间的内容)

    }

    /*
36道:BC37 网购

描述
KiKi非常喜欢网购，在一家店铺他看中了一件衣服，他了解到，如果今天是“双11”（11月11日）则这件衣服打7折，“双12” （12月12日）则这件衣服打8折，
如果有优惠券可以额外减50元（优惠券只能在双11或双12使用），求KiKi最终所花的钱数。

数据范围：衣服价格满足 1 \le val \le 100000 \1≤val≤100000
输入描述：
一行，四个数字，第一个数表示小明看中的衣服价格，第二和第三个整数分别表示当天的月份、当天的日期、第四个整数表示是否有优惠券（有优惠券用1表示，无优惠券用0表示）。 注：输入日期保证只有“双11”和“双12”。
输出描述：
一行，小明实际花的钱数（保留两位小数）。（提示：不要指望商家倒找你钱）
示例1
输入：1000.0 11 11 1
输出：650.00
示例2
输入：999.8 12 12 0
输出：799.84
示例3
输入：66.6 11 11 1
输出：0.00
*/

    public static void main36(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double val = scanner.nextDouble(); // 价格
        int month = scanner.nextInt();     // 月
        int day = scanner.nextInt();       // 天
        int falg = scanner.nextInt();      // 优惠券
        double discount = 0;               // 折扣
        double sum = 0;                    // 实际价格

        if(11==month && 11 == day) {
            discount = 0.7;
        }

        if(12==month && 12 == day) {
            discount = 0.8;
        }

        sum = val*discount-falg*50;

        if(sum <= 0) {
            // System.out.printf("0.00\n");  // %d,%f
            System.out.println("0.00");
        }
        else{
            // System.out.printf("%.2f",sum);
            // 或者使用
            System.out.println(String.format("%.2f",sum));
        }

    }



    /*
37道：BC39 争夺前五名
描述
期中考试开始了，大家都想取得好成绩，争夺前五名。从键盘输入 n 个学生成绩，输出每组排在前五高的成绩。

数据范围： 5 \le n \le 50 \5≤n≤50  ，成绩采取百分制并不会出现负数
输入描述：
两行，第一行输入一个整数，表示n个学生（>=5），第二行输入n个学生成绩（整数表示，范围0~100），用空格分隔。
输出描述：
一行，输出成绩最高的前五个，用空格分隔。
示例1
输入：
6
99 45 78 67 72 88
输出：99 88 78 72 67
示例2
输入：
5
10 20 30 40 50
输出：50 40 30 20 10
*/
    public static void main37(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] arrs = new int[n];
        for(int i = 0; i < arrs.length;i++){
            arrs[i] = scanner.nextInt();
        }

        // 冒泡排序,降序(数值小的放到后面)
        for(int i = 0; i < arrs.length-1;i++) {
            for(int j = 1; j < arrs.length-i;j++) { // 注意是从下标 1 开始的,
                if(arrs[j-1] < arrs[j]) { // 前面小的数值放后
                    int temp = arrs[j];
                    arrs[j] = arrs[j-1];
                    arrs[j-1] = temp;
                }
            }
        }

        // 排序结束,取出前5个成绩
        for(int i = 0; i < 5; i++) {
            System.out.print(arrs[i]+" ");
        }
    }


    /*
38道:BC40 竞选社长
描述
假设你们社团要竞选社长，有两名候选人分别是A和B，社团每名同学必须并且只能投一票，最终得票多的人为社长.
输入描述：
一行，字符序列，包含A或B，输入以字符0结束。
输出描述：
一行，一个字符，A或B或E，输出A表示A得票数多，输出B表示B得票数多，输出E表示二人得票数相等。
示例1
输入：ABBABBAAB0
输出：B
*/
    // 方式一:
    public static void main38_1(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        int countA = 0;
        int countB = 0;

        for(int i = 0; i < str.length();i++) {
            if(str.charAt(i) == 'A') { // 取出下标为i的字符串的字符,并判断
                countA++;
            }

            if('B' == str.charAt(i)) {
                countB++;
            }
        }

        if( countA > countB) {
            System.out.println("A");
        } else if(countA == countB) {
            System.out.println("E");
        } else {
            System.out.println("B");
        }
    }

    // 方式二:
    public static void main38_2(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();

        int countA = str.replace("B", "").length()-1;
        int countB = str.replace("A","").length()-1; // 字符串中的 A 替换成"" 空字符,剩余的不就是的B了吗,再求返回的字符串长度 -1 去掉 0


        if( countA > countB){
            System.out.println("A");
        } else if( countA == countB) {
            System.out.println("E");
        } else {
            System.out.println("B");
        }

    }




}



/*

format
public static String format(Locale l,
                            String format,
                            Object... args)使用指定的区域设置，格式字符串和参数返回格式化的字符串。
参数
l - 格式化期间应用的locale。 如果l是null ，则不应用本地化。
 */